package com.neuedu.corejava.ch10;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class MapClass {

	public static void main(String[] args) {
		//Map集合用于保存有映射关系的数据
		//存储数据时是通过key value的对应关系进行保存
		//key 是一个Set集合，不允许有null key，不能保存相同的key；保存key相同的数据，后面的数据会覆盖前面的数据（修改数据）
		//value 是一个Collection集合，
		
		//HashMap ：允许有null为key，允许value值为null，key不能重复，value可以重复; 
		//Hashtable：不允许有null为key，不允许value值为null，key不能重复，value可以重复; 
		//HashMap 线程不安全 ；Hashtable线程安全（功能基本一样）
		
		Map<String , Computer>map=new HashMap<String, Computer>(16);
		//新增方法
		map.put("hp", new Computer("hp",5000));//添加数据
		map.put("hw", new Computer("hwp",5000));
		map.put("hp1", new Computer("hw2",5000));
		map.put("dell", new Computer("dell",5000));
		
		//遍历map一般先取出key，再遍历key，在根据key取value
		Set<String>keys=map.keySet();
		Iterator<String>iterator=keys.iterator();
		while(iterator.hasNext()) {
			String key=iterator.next();
			Computer computer=map.get(key);
			if(computer!=null) {
				System.out.println("品牌 "+key+" 型号 "+computer.getBrand()+" 价格 "+computer.getPrice());
			}
		}
		
		//一对多关系
		Map<String,List<Computer>>map2=new HashMap<String, List<Computer>>();
		
		//TreeMap
		TreeMap<String ,Computer>map3=new TreeMap<String ,Computer>();
		Iterator<String>iterator2=keys.iterator();
		while(iterator.hasNext()) {
			String key=iterator.next();
			Computer computer=map3.get(key);
			if(computer!=null) {
				System.out.println("品牌 "+key+" 型号 "+computer.getBrand()+" 价格 "+computer.getPrice());
			}
		}
		
	}

}
